export const IS_DEV = import.meta.env.DEV;

/**
 * 构建静态资源地址
 * @param sourceName 资源名称
 */
export function buildAssetSource(sourceName: string) {
  return import.meta.env.VITE_ASSERT_BASEURL + sourceName;
}

/**
 * 当在指定间隔内点击指定次数后，触发回调
 * @param targetCount 目标点击次数
 * @param intervalMs 间隔时间（毫秒）
 * @param onTrigger 达到次数时触发的回调
 * @returns 一个函数供点击时调用（例如绑定在点击事件中）
 */
export function createClickCounter(
  targetCount: number,
  intervalMs: number,
  onTrigger: () => void
): () => void {
  let clickCount = 0;
  let timer: ReturnType<typeof setTimeout> | null = null;

  return function () {
    clickCount++;

    if (clickCount >= targetCount) {
      onTrigger();
      reset();
      return;
    }

    if (timer) {
      clearTimeout(timer);
    }

    timer = setTimeout(() => {
      reset();
    }, intervalMs);
  };

  function reset() {
    clickCount = 0;
    if (timer) {
      clearTimeout(timer);
      timer = null;
    }
  }
}

/**
 * 获取app版本号
 * @returns 版本号
 */
export function getAppVersion() {
  if (typeof plus !== 'undefined') {
    return {
      version: plus.runtime.version,
      versionCode: plus.runtime.versionCode
    };
  }
  else {
    return {
      version: 'unknown',
      versionCode: -1
    };
  }
}
